{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#| hide\n",
    "!pip install -Uqq nixtla"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#| hide \n",
    "from nixtla.utils import in_colab"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#| hide \n",
    "IN_COLAB = in_colab()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#| hide\n",
    "if not IN_COLAB:\n",
    "    from nixtla.utils import colab_badge\n",
    "    from dotenv import load_dotenv"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Add date features\n",
    "\n",
    "If your dataset lacks exogenous variables, add date features to inform the model for anomaly detection. Use the `date_features` argument. Set it to `True` to extract all possible features, or pass a list of specific features to include."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/markdown": [
       "[![](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Nixtla/nixtla/blob/main/nbs/docs/capabilities/anomaly-detection/03_anomaly_detection_date_features.ipynb)"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#| echo: false\n",
    "if not IN_COLAB:\n",
    "    load_dotenv()\n",
    "    colab_badge('docs/capabilities/anomaly-detection/03_anomaly_detection_date_features')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "from nixtla import NixtlaClient"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "nixtla_client = NixtlaClient(\n",
    "    # defaults to os.environ.get(\"NIXTLA_API_KEY\")\n",
    "    api_key = 'my_api_key_provided_by_nixtla'\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "> 👍 Use an Azure AI endpoint\n",
    "> \n",
    "> To use an Azure AI endpoint, set the `base_url` argument:\n",
    "> \n",
    "> `nixtla_client = NixtlaClient(base_url=\"you azure ai endpoint\", api_key=\"your api_key\")`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#| hide\n",
    "if not IN_COLAB:\n",
    "    nixtla_client = NixtlaClient()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "INFO:nixtla.nixtla_client:Validating inputs...\n",
      "INFO:nixtla.nixtla_client:Preprocessing dataframes...\n",
      "INFO:nixtla.nixtla_client:Calling Anomaly Detector Endpoint...\n",
      "INFO:nixtla.nixtla_client:Using the following exogenous variables: month_1, month_2, month_3, month_4, month_5, month_6, month_7, month_8, month_9, month_10, month_11, month_12, year_2007, year_2008, year_2009, year_2010, year_2011, year_2012, year_2013, year_2014, year_2015, year_2016\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Axes: ylabel='features'>"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Read the data\n",
    "df = pd.read_csv('https://raw.githubusercontent.com/Nixtla/transfer-learning-time-series/main/datasets/peyton_manning.csv')\n",
    "\n",
    "# Add date features for anomaly detection\n",
    "# Here, we use date features at the month and year levels\n",
    "anomalies_df_x = nixtla_client.detect_anomalies(\n",
    "    df, time_col='timestamp', \n",
    "    target_col='value', \n",
    "    freq='D', \n",
    "    date_features=['month', 'year'],\n",
    "    level=99.99,\n",
    ")\n",
    "\n",
    "# Plot weights of date features\n",
    "nixtla_client.weights_x.plot.barh(x='features', y='weights')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "> 📘 Available models in Azure AI\n",
    ">\n",
    "> If you use an Azure AI endpoint, set `model=\"azureai\"`\n",
    ">\n",
    "> `nixtla_client.detect_anomalies(..., model=\"azureai\")`\n",
    ">\n",
    "> For the public API, two models are supported: `timegpt-1` and `timegpt-1-long-horizon`.\n",
    "> \n",
    "> By default, `timegpt-1` is used. See [this tutorial](https://docs.nixtla.io/docs/tutorials-long_horizon_forecasting) for details on using `timegpt-1-long-horizon`."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For more details, check out our in-depth tutorial on [anomaly detection](https://docs.nixtla.io/docs/tutorials/anomaly_detection)."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "python3",
   "language": "python",
   "name": "python3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
